<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg">
  <head>
    <title>XML literals</title>
    <link rel="stylesheet" type="text/css" href="docbook-epub.css"/>
    <link rel="stylesheet" type="text/css" href="kawa.css"/>
    <script src="kawa-ebook.js" type="text/javascript"/>
    <meta name="generator" content="DocBook XSL-NS Stylesheets V1.79.1"/>
    <link rel="prev" href="Creating-XML-nodes.xhtml" title="Creating XML nodes"/>
    <link rel="next" href="Server-side-scripts.xhtml" title="Web page scripts"/>
  </head>
  <body>
    <header/>
    <section class="sect1" title="XML literals" epub:type="subchapter" id="XML-literals">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both">XML literals</h2>
          </div>
        </div>
      </div>
      <p>You can write XML literals directly in Scheme code,
following a <code class="literal">#</code>.
Notice that the outermost element needs to be prefixed
by <code class="literal">#</code>, but nested elements do not (and must not).
</p>
      <pre class="screen">#&lt;p&gt;The result is &lt;b&gt;final&lt;/b&gt;!&lt;/p&gt;
</pre>
      <p>Actually, these are not really literals since they can contain
enclosed expressions:
</p>
      <pre class="screen">#&lt;em&gt;The result is &amp;{result}.&lt;/em&gt;
</pre>
      <p>The value of <em class="replaceable"><code>result</code></em> is substituted into the output,
in a similar way to quasi-quotation.
(If you try to quote one of these “XML literals”,
what you get is unspecified and is subject to change.)
</p>
      <p>An <em class="replaceable"><code>xml-literal</code></em> is usually an element constructor,
but there some rarely used forms (processing-instructions,
comments, and CDATA section) we’ll cover later.
</p>
      <div class="literallayout">
        <p><a id="idm139667870612672" class="indexterm"/><span id="meta-xml-literal"/><em class="replaceable"><code>xml-literal</code></em> <code class="literal">::=</code> <code class="literal"><span class="bold"><strong>#</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-constructor"><em class="replaceable"><code>xml-constructor</code></em></a><br/>
<a id="idm139667870609216" class="indexterm"/><span id="meta-xml-constructor"/><em class="replaceable"><code>xml-constructor</code></em> <code class="literal">::=</code> <a class="link" href="XML-literals.xhtml#meta-xml-element-constructor"><em class="replaceable"><code>xml-element-constructor</code></em></a><br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-PI-constructor"><em class="replaceable"><code>xml-PI-constructor</code></em></a><br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-comment-constructor"><em class="replaceable"><code>xml-comment-constructor</code></em></a><br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-CDATA-constructor"><em class="replaceable"><code>xml-CDATA-constructor</code></em></a><br/>
</p>
      </div>
      <section class="sect2" title="Element constructors" epub:type="division" id="idm139667870603696">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title">Element constructors</h3>
            </div>
          </div>
        </div>
        <div class="literallayout">
          <p><a id="idm139667870602624" class="indexterm"/><span id="meta-xml-element-constructor"/><em class="replaceable"><code>xml-element-constructor</code></em> <code class="literal">::=</code><br/>
    <code class="literal"><span class="bold"><strong>&lt;</strong></span></code><a class="link" href="XML-literals.xhtml#meta-QName"><em class="replaceable"><code>QName</code></em></a> <a class="link" href="XML-literals.xhtml#meta-xml-attribute"><em class="replaceable"><code>xml-attribute</code></em></a>*<code class="literal"><span class="bold"><strong>&gt;</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-element-datum"><em class="replaceable"><code>xml-element-datum</code></em></a>...<code class="literal"><span class="bold"><strong>&lt;/</strong></span></code><a class="link" href="XML-literals.xhtml#meta-QName"><em class="replaceable"><code>QName</code></em></a> <code class="literal"><span class="bold"><strong>&gt;</strong></span></code><br/>
  | <code class="literal"><span class="bold"><strong>&lt;</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-name-form"><em class="replaceable"><code>xml-name-form</code></em></a> <a class="link" href="XML-literals.xhtml#meta-xml-attribute"><em class="replaceable"><code>xml-attribute</code></em></a>*<code class="literal"><span class="bold"><strong>&gt;</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-element-datum"><em class="replaceable"><code>xml-element-datum</code></em></a>...<code class="literal"><span class="bold"><strong>&lt;/&gt;</strong></span></code><br/>
  | <code class="literal"><span class="bold"><strong>&lt;</strong></span></code><em class="replaceable"><code>xml-name-form</code></em> <a class="link" href="XML-literals.xhtml#meta-xml-attribute"><em class="replaceable"><code>xml-attribute</code></em></a>*<code class="literal"><span class="bold"><strong>/&gt;</strong></span></code><br/>
<a id="idm139667870587040" class="indexterm"/><span id="meta-xml-name-form"/><em class="replaceable"><code>xml-name-form</code></em> <code class="literal">::=</code> <a class="link" href="XML-literals.xhtml#meta-QName"><em class="replaceable"><code>QName</code></em></a><br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-enclosed-expression"><em class="replaceable"><code>xml-enclosed-expression</code></em></a><br/>
<a id="idm139667870583376" class="indexterm"/><span id="meta-xml-enclosed-expression"/><em class="replaceable"><code>xml-enclosed-expression</code></em> <code class="literal">::=</code><br/>
    <code class="literal"><span class="bold"><strong>{</strong></span></code><a class="link" href="Primitive-expression-syntax.xhtml#meta-expression"><em class="replaceable"><code>expression</code></em></a><code class="literal"><span class="bold"><strong>}</strong></span></code><br/>
  | <code class="literal"><span class="bold"><strong>(</strong></span></code><a class="link" href="Primitive-expression-syntax.xhtml#meta-expression"><em class="replaceable"><code>expression</code></em></a>...<code class="literal"><span class="bold"><strong>)</strong></span></code><br/>
</p>
        </div>
        <p>The first <em class="replaceable"><code>xml-element-constructor</code></em> variant uses a literal <em class="replaceable"><code>QName</code></em>,
and looks like standard non-empty XML element, where the starting <em class="replaceable"><code>QName</code></em>
and the ending <em class="replaceable"><code>QName</code></em> must match exactly:
</p>
        <pre class="screen">#&lt;a href="next.html"&gt;Next&lt;/a&gt;
</pre>
        <p>As a convenience, you can leave out the ending tag(s):
</p>
        <pre class="screen">This is a paragraph in &lt;emphasis&gt;DocBook&lt;/&gt; syntax.&lt;/&gt;
</pre>
        <p>You can use an expression to compute the element tag at runtime -
in that case you <span class="emphasis"><em>must</em></span> leave out the ending tag:
</p>
        <pre class="screen">#&lt;p&gt;This is &lt;(if be-bold 'strong 'em)&gt;important&lt;/&gt;!&lt;/p&gt;
</pre>
        <p>You can use arbitrary <em class="replaceable"><code>expression</code></em> inside curly braces,
as long as it evaluates to a symbol.
You can leave out the curly braces
if the <em class="replaceable"><code>expression</code></em> is a simple parenthesised compound expression.
The previous example is equivalent to:
</p>
        <pre class="screen">#&lt;p&gt;This is &lt;{(if be-bold 'strong 'em)}&gt;important&lt;/&gt;!&lt;/p&gt;
</pre>
        <p>The third <em class="replaceable"><code>xml-element-constructor</code></em> variant above is an XML
“empty element”; it is equivalent to the second variant
when there are no <em class="replaceable"><code>xml-element-datum</code></em> items.
</p>
        <p>(Note that every well-formed XML element, as defined in the XML specifications,
is a valid <em class="replaceable"><code>xml-element-constructor</code></em>, but not vice versa.)
</p>
      </section>
      <section class="sect2" title="Elements contents (children)" epub:type="division" id="idm139667870567456">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title">Elements contents (children)</h3>
            </div>
          </div>
        </div>
        <p>The “contents” (children) of an element
are a sequence of character (text) data, and nested nodes.
The characters <code class="literal">&amp;</code>, <code class="literal">&lt;</code>, and <code class="literal">&gt;</code> are special,
and need to be escaped.
</p>
        <div class="literallayout">
          <p><a id="idm139667870564368" class="indexterm"/><span id="meta-xml-element-datum"/><em class="replaceable"><code>xml-element-datum</code></em> <code class="literal">::=</code><br/>
    any character except <code class="literal">&amp;</code>, or <code class="literal">&lt;</code>.<br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-constructor"><em class="replaceable"><code>xml-constructor</code></em></a><br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-escaped"><em class="replaceable"><code>xml-escaped</code></em></a><br/>
<a id="idm139667870559776" class="indexterm"/><span id="meta-xml-escaped"/><em class="replaceable"><code>xml-escaped</code></em> <code class="literal">::=</code><br/>
    <code class="literal"><span class="bold"><strong>&amp;</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-enclosed-expression"><em class="replaceable"><code>xml-enclosed-expression</code></em></a><br/>
  | <code class="literal"><span class="bold"><strong>&amp;</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-entity-name"><em class="replaceable"><code>xml-entity-name</code></em></a><code class="literal"><span class="bold"><strong>;</strong></span></code><br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-character-reference"><em class="replaceable"><code>xml-character-reference</code></em></a><br/>
<a id="idm139667870553216" class="indexterm"/><span id="meta-xml-character-reference"/><em class="replaceable"><code>xml-character-reference</code></em> <code class="literal">::=</code><br/>
    <code class="literal"><span class="bold"><strong>&amp;#</strong></span></code><a class="link" href="Lexical-syntax.xhtml#meta-digit"><em class="replaceable"><code>digit</code></em></a>+<code class="literal"><span class="bold"><strong>;</strong></span></code><br/>
  | <code class="literal"><span class="bold"><strong>&amp;#x</strong></span></code><a class="link" href="Lexical-syntax.xhtml#meta-hex-digit"><em class="replaceable"><code>hex-digit</code></em></a>+<code class="literal"><span class="bold"><strong>;</strong></span></code><br/>
</p>
        </div>
        <p>Here is an example shows both hex and decimal character references:
</p>
        <pre class="screen">#&lt;p&gt;A&amp;#66;C&amp;#x44;E&lt;/p&gt;  ⇒  &lt;p&gt;ABCDE&lt;/p&gt;
</pre>
        <div class="literallayout">
          <p><a id="idm139667870545536" class="indexterm"/><span id="meta-xml-entity-name"/><em class="replaceable"><code>xml-entity-name</code></em> <code class="literal">::=</code> <a class="link" href="Lexical-syntax.xhtml#meta-identifier"><em class="replaceable"><code>identifier</code></em></a><br/>
</p>
        </div>
        <p>Currently, the only supported values for <em class="replaceable"><code>xml-entity-name</code></em>
are the builtin XML names <code class="literal">lt</code>, <code class="literal">gt</code>, <code class="literal">amp</code>,
<code class="literal">quot</code>, and <code class="literal">apos</code>, which stand for the characters
<code class="literal">&lt;</code>, <code class="literal">&gt;</code>, <code class="literal">&amp;</code>, <code class="literal">"</code>, and <code class="literal">'</code>, respectively.
The following two expressions are equivalent:
</p>
        <pre class="screen">#&lt;p&gt;&amp;lt; &amp;gt; &amp;amp; &amp;quot; &amp;apos;&lt;/p&gt;
#&lt;p&gt;&amp;{"&lt; &gt; &amp; \" '"}&lt;/p&gt;
</pre>
      </section>
      <section class="sect2" title="Attributes" epub:type="division" id="idm139667870537104">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title">Attributes</h3>
            </div>
          </div>
        </div>
        <div class="literallayout">
          <p><a id="idm139667870536032" class="indexterm"/><span id="meta-xml-attribute"/><em class="replaceable"><code>xml-attribute</code></em> <code class="literal">::=</code><br/>
    <a class="link" href="XML-literals.xhtml#meta-xml-name-form"><em class="replaceable"><code>xml-name-form</code></em></a><code class="literal"><span class="bold"><strong>=</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-attribute-value"><em class="replaceable"><code>xml-attribute-value</code></em></a><br/>
<a id="idm139667870531872" class="indexterm"/><span id="meta-xml-attribute-value"/><em class="replaceable"><code>xml-attribute-value</code></em> <code class="literal">::=</code><br/>
    <code class="literal"><span class="bold"><strong>"</strong></span></code><a class="link" href="XML-literals.xhtml#meta-quot-attribute-datum"><em class="replaceable"><code>quot-attribute-datum</code></em></a>*<code class="literal"><span class="bold"><strong>"</strong></span></code><br/>
  | <code class="literal"><span class="bold"><strong>’</strong></span></code><a class="link" href="XML-literals.xhtml#meta-apos-attribute-datum"><em class="replaceable"><code>apos-attribute-datum</code></em></a>*<code class="literal"><span class="bold"><strong>’</strong></span></code><br/>
<a id="idm139667870525168" class="indexterm"/><span id="meta-quot-attribute-datum"/><em class="replaceable"><code>quot-attribute-datum</code></em> <code class="literal">::=</code><br/>
    any character except <code class="literal">"</code>, <code class="literal">&amp;</code>, or <code class="literal">&lt;</code>.<br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-escaped"><em class="replaceable"><code>xml-escaped</code></em></a><br/>
<a id="idm139667870520992" class="indexterm"/><span id="meta-apos-attribute-datum"/><em class="replaceable"><code>apos-attribute-datum</code></em> <code class="literal">::=</code><br/>
    any character except <code class="literal">'</code>, <code class="literal">&amp;</code>, or <code class="literal">&lt;</code>.<br/>
  | <a class="link" href="XML-literals.xhtml#meta-xml-escaped"><em class="replaceable"><code>xml-escaped</code></em></a><br/>
</p>
        </div>
        <p>If the <em class="replaceable"><code>xml-name-form</code></em> is either <code class="literal">xmlns</code> or
a compound named with the prefix <code class="literal">xmlns</code>, then
technically we have a namespace declaration, rather than
an attribute.
</p>
      </section>
      <section class="sect2" title="QNames and namespaces" epub:type="division" id="idm139667870514752">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title">QNames and namespaces</h3>
            </div>
          </div>
        </div>
        <p>The names of elements and attributes are <em class="firstterm">qualified names</em>
(QNames), which are represented using compound symbols (see <a class="link" href="Namespaces.xhtml" title="Namespaces and compound symbols">Namespaces</a>).
The lexical syntax for a QName is either a simple identifier,
or a (prefix,local-name) pair:
</p>
        <div class="literallayout">
          <p><a id="idm139667870511936" class="indexterm"/><span id="meta-QName"/><em class="replaceable"><code>QName</code></em> <code class="literal">::=</code> <a class="link" href="XML-literals.xhtml#meta-xml-local-part"><em class="replaceable"><code>xml-local-part</code></em></a><br/>
   | <a class="link" href="XML-literals.xhtml#meta-xml-prefix"><em class="replaceable"><code>xml-prefix</code></em></a><code class="literal"><span class="bold"><strong>:</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-local-part"><em class="replaceable"><code>xml-local-part</code></em></a><br/>
<a id="idm139667870506944" class="indexterm"/><span id="meta-xml-local-part"/><em class="replaceable"><code>xml-local-part</code></em> <code class="literal">::=</code> <a class="link" href="Lexical-syntax.xhtml#meta-identifier"><em class="replaceable"><code>identifier</code></em></a><br/>
<a id="idm139667870504144" class="indexterm"/><span id="meta-xml-prefix"/><em class="replaceable"><code>xml-prefix</code></em> <code class="literal">::=</code> <a class="link" href="Lexical-syntax.xhtml#meta-identifier"><em class="replaceable"><code>identifier</code></em></a><br/>
</p>
        </div>
        <p>An <em class="replaceable"><code>xml-prefix</code></em> is an alias for a namespace-uri,
and the mapping between them is defined by a namespace-declaration.
You can either use a <code class="literal">define-namespace</code> form, or you
can use a <em class="firstterm">namespace declaration attribute</em>:
</p>
        <div class="literallayout">
          <p><a id="idm139667870499248" class="indexterm"/><span id="meta-xml-namespace-declaration-attribute"/><em class="replaceable"><code>xml-namespace-declaration-attribute</code></em> <code class="literal">::=</code><br/>
    <code class="literal"><span class="bold"><strong>xmlns:</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-prefix"><em class="replaceable"><code>xml-prefix</code></em></a><code class="literal"><span class="bold"><strong>=</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-attribute-value"><em class="replaceable"><code>xml-attribute-value</code></em></a><br/>
  | <code class="literal"><span class="bold"><strong>xmlns=</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-attribute-value"><em class="replaceable"><code>xml-attribute-value</code></em></a><br/>
</p>
        </div>
        <p>The former declares <em class="replaceable"><code>xml-prefix</code></em> as a namespace alias for
the namespace-uri specified by <em class="replaceable"><code>xml-attribute-value</code></em>
(which must be a compile-time constant).
The second declares that <em class="replaceable"><code>xml-attribute-value</code></em> is the default
namespace for simple (unprefixed) element tags.
(A default namespace declaration is ignored for attribute names.)
</p>
        <pre class="screen">(let ((qn (element-name #&lt;gnu:b xmlns:gnu="http://gnu.org/"/&gt;)))
  (list (symbol-local-name qn)
        (symbol-prefix qn)
        (symbol-namespace-uri qn)))
⇒ ("b" "gnu" "http://gnu.org/")

</pre>
      </section>
      <section class="sect2" title="Other XML types" epub:type="division" id="idm139667870489696">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title">Other XML types</h3>
            </div>
          </div>
        </div>
        <section class="sect3" title="Processing instructions" epub:type="division" id="idm139667870488752">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title">Processing instructions</h4>
              </div>
            </div>
          </div>
          <p>An <em class="replaceable"><code>xml-PI-constructor</code></em> can be used to create an XML
<em class="firstterm">processing instruction</em>, which can be used to pass
instructions or annotations to an XML processor (or tool).
(Alternatively, you can use the <code class="literal">processing-instruction</code>
type constructor.)
</p>
          <div class="literallayout">
            <p><a id="idm139667870485840" class="indexterm"/><span id="meta-xml-PI-constructor"/><em class="replaceable"><code>xml-PI-constructor</code></em> <code class="literal">::=</code> <code class="literal"><span class="bold"><strong>&lt;?</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-PI-target"><em class="replaceable"><code>xml-PI-target</code></em></a> <a class="link" href="XML-literals.xhtml#meta-xml-PI-content"><em class="replaceable"><code>xml-PI-content</code></em></a><code class="literal"><span class="bold"><strong>?&gt;</strong></span></code><br/>
<a id="idm139667870480848" class="indexterm"/><span id="meta-xml-PI-target"/><em class="replaceable"><code>xml-PI-target</code></em> <code class="literal">::=</code> <em class="replaceable"><code>NCname</code></em> (i.e. a simple (non-compound) identifier)<br/>
<a id="idm139667870478384" class="indexterm"/><span id="meta-xml-PI-content"/><em class="replaceable"><code>xml-PI-content</code></em> <code class="literal">::=</code> any characters, not containing <code class="literal">?&gt;</code>.<br/>
</p>
          </div>
          <p>For example, the DocBook XSLT stylesheets can use the <code class="literal">dbhtml</code>
instructions to specify that a specific chapter should be
written to a named HTML file:
</p>
          <pre class="screen">#&lt;chapter&gt;&lt;?dbhtml filename="intro.html" ?&gt;
&lt;title&gt;Introduction&lt;/title&gt;
...
&lt;/chapter&gt;
</pre>
        </section>
        <section class="sect3" title="XML comments" epub:type="division" id="idm139667870474256">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title">XML comments</h4>
              </div>
            </div>
          </div>
          <p>You can cause XML comments to be emitted in the XML output document.
Such comments can be useful for humans reading the XML document,
but are usually ignored by programs.
(Alternatively, you can use the <code class="literal">comment</code> type constructor.)
</p>
          <div class="literallayout">
            <p><a id="idm139667870472128" class="indexterm"/><span id="meta-xml-comment-constructor"/><em class="replaceable"><code>xml-comment-constructor</code></em> <code class="literal">::=</code> <code class="literal"><span class="bold"><strong>&lt;!–</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-comment-content"><em class="replaceable"><code>xml-comment-content</code></em></a><code class="literal"><span class="bold"><strong>–&gt;</strong></span></code><br/>
<a id="idm139667870467920" class="indexterm"/><span id="meta-xml-comment-content"/><em class="replaceable"><code>xml-comment-content</code></em> <code class="literal">::=</code> any characters, not containing <code class="literal">--</code>.<br/>
</p>
          </div>
        </section>
        <section class="sect3" title="CDATA sections" epub:type="division" id="idm139667870465232">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title">CDATA sections</h4>
              </div>
            </div>
          </div>
          <p>A <code class="literal">CDATA</code> section can be used to avoid excessive use of
<em class="replaceable"><code>xml-entity-ref</code></em> such as <code class="literal">&amp;amp;</code> in element content.
</p>
          <div class="literallayout">
            <p><a id="idm139667870462400" class="indexterm"/><span id="meta-xml-CDATA-constructor"/><em class="replaceable"><code>xml-CDATA-constructor</code></em> <code class="literal">::=</code> <code class="literal"><span class="bold"><strong>&lt;![CDATA[</strong></span></code><a class="link" href="XML-literals.xhtml#meta-xml-CDATA-content"><em class="replaceable"><code>xml-CDATA-content</code></em></a><code class="literal"><span class="bold"><strong>]]&gt;</strong></span></code><br/>
<a id="idm139667870458208" class="indexterm"/><span id="meta-xml-CDATA-content"/><em class="replaceable"><code>xml-CDATA-content</code></em> <code class="literal">::=</code> any characters, not containing <code class="literal">]]&gt;</code>.<br/>
</p>
          </div>
          <p>The following are equivalent:
</p>
          <pre class="screen">#&lt;p&gt;Specal characters &lt;![CDATA[&lt; &gt; &amp; ' "]]&gt; here.&lt;/p&gt;
#&lt;p&gt;Specal characters &amp;lt; &amp;gt; &amp;amp; &amp;quot; &amp;apos; here.&lt;/p&gt;
</pre>
          <p>Kawa remembers that you used a <code class="literal">CDATA</code> section in
the <em class="replaceable"><code>xml-element-constructor</code></em> and will write it out
using a <code class="literal">CDATA</code> constructor.
</p>
        </section>
      </section>
    </section>
    <footer>
      <div class="navfooter">
        <ul>
          <li>
            <b class="toc">
              <a href="XML-literals.xhtml#idm139667870603696">Element constructors</a>
            </b>
          </li>
          <li>
            <b class="toc">
              <a href="XML-literals.xhtml#idm139667870567456">Elements contents (children)</a>
            </b>
          </li>
          <li>
            <b class="toc">
              <a href="XML-literals.xhtml#idm139667870537104">Attributes</a>
            </b>
          </li>
          <li>
            <b class="toc">
              <a href="XML-literals.xhtml#idm139667870514752">QNames and namespaces</a>
            </b>
          </li>
          <li>
            <b class="toc">
              <a href="XML-literals.xhtml#idm139667870489696">Other XML types</a>
            </b>
          </li>
        </ul>
        <p>
          Up: <a accesskey="u" href="XML-tools.xhtml">Working with XML and HTML</a></p>
        <p>
        Previous: <a accesskey="p" href="Creating-XML-nodes.xhtml">Creating XML nodes</a></p>
        <p>
        Next: <a accesskey="n" href="Server-side-scripts.xhtml">Web page scripts</a></p>
      </div>
    </footer>
  </body>
</html>
